package com.mswyt.utils.msHandlebean.annotation;

import org.springframework.stereotype.Component;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 处理数实体类上字典的注解。
 * 比如：返回的结果是{id:"a1d",type:"0",state:"0;1"}
 * 转换成 {id:"a1d",type:"类型1",state:"状态1;状态2"}
 * 或     {id:"a1d",type:"0",typeName:"类型1",state:"0;1",stateName:"状态1;状态2"}
 *
 * @author: mashuai
 * @ClassName: MsJoinDict
 */
@Component
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MsJoinDict {
    //字典类型，根据此找出映射的字典集合
    String dictType();

    //需要字典返回的结果集中某个字段,默认取MsDictDto中的label字段，需要其他字段自己定义即可
    //可在yml文件配置：ms.hb.dict-need-field:label
    String needField() default "label";

    //需要设值的字段，不填默认赋值给当前字段,命名规范，type-->typeName
    String setField() default "";

    //如果字典存在多个值要处理。默认采用;拼接
    //可在yml文件配置：ms.hb.dict-split:;
    String splitVal() default ";";
}
